package org.sgx.gwteditors.client.editor.props;

import org.sgx.gwteditors.client.util.LWOMap;
/**
 * we solve the issue with java reflection forcing the user to describe 
 * its beans implementing this interface.
 * 
 * the PH must know : 
 * describe its properties names and types. Properties order is given by the 
 * ordering of getProperties() (ordered map)
 *  
 *   * @author sg
 *
 */
public interface PropertyHaver {
/**
 * @return an ordered map of Property definitions by name. This is the actual object type definition.
 */
LWOMap<String, PropertyInfo> getProperties();
/**
 * gets given property value
 * @param propertyName
 * @return
 */
Object propertyGet(String propertyName);
/**
 * sets the given property's value
 * @param propertyName
 * @param val
 */
void propertySet(String propertyName, Object val);
}
